package com.tender.page;

import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.Data;
import org.springframework.util.CollectionUtils;

import java.util.List;

@Data
public class Pagination {

    // 每页条数
    private long pageSize = 20;

    // 当前页
    private long currentPage = 1;

    // 排序条件
    private List<OrderItem> orderItems;

    /**
     * 准备分页 Page<T> 对象
     */
    public <T> Page<T> toPage(List<OrderItem> orderItems) {
        // 分页基本
        Page<T> page = new Page<>(currentPage, pageSize);
        // 排序处理
        if (!CollectionUtils.isEmpty(orderItems)) {
            page.addOrder(orderItems);
        }

        return page;
    }

    /**
     * 根据 Pagination 中的 orderItems 来生成 Page<T> 对象
     */
    public <T> Page<T> toPage() {
        return this.toPage(orderItems);
    }

}
